BOJ_11726_2xn타일링
점화식을 구해서 푸는 DP(Dynamic Programming) 문제
1부터 구해보면
dp[1] = 1
dp[2] = 2
dp[3] = 3
dp[4] = 5
dp[5] = 8
예를 구해서 규칙을 찾아주면 된다
배열을 선언할 때 n 의 값이 작을 것을 염두하여 dp[2]가 언제나 유효하도록 3을 더해주었다
package BJO;
import java.util.Scanner;
public class BJO_11726_2xn타일링_DP {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] dp = new int[n + 3];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = (dp[i - 1] + dp[i - 2]) % 10007;
}
System.out.println(dp[n]);
}
}